package com.chixing.mapper;

import com.chixing.entity.UserMessage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 用户消息关系表（含消息推送状态） Mapper 接口
 * </p>
 *
 * @author smith
 * @since 2025-10-28
 */
@Mapper
public interface UserMessageMapper extends BaseMapper<UserMessage> {
    void updateIsPushed(@Param("id") Long id);
    // 根据 id 更新消息为 DELIVERED=已送达
    void updateDeliveredStatus(@Param("id") Long id,@Param("deliveredAt") LocalDateTime deliveredAt);
    // 根据 id 更新消息为 EXPIRED=过期未送达
    void updateExpiredStatusById(@Param("id") Long id,@Param("expiredAt")LocalDateTime expiredAt);
    // 查询某用户所有未送达消息的 id
    List<Long> selectUnreadIdsByUserId(@Param("userId") Long userId);
    //修改消息状态为 "已读"
    int updateMsgStatus(@Param("id")Long id);
}
